<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <div class="content">WElcome to javascript</div>
    <script>
      // 正则表达式的创建： 可以使用变量
      // 方法一：通过RegExp构造函数创建
      let str = "come";
      const div = document.querySelector(".content");
      var regExp1 = new RegExp(str, "gi");

      // search返回匹配的字符串
      /*
          match, 匹配的字符串
          p1, p2, /* …,pN, 匹配的原子组
offset,原始字符串中匹配子字符串的偏移量。例如，如果整个字符串是 'abcd'，而匹配的子字符串是 'bc'，那么这个参数将是 1。
 string, 匹配的完整字符串
 groups 原子组的名称
      */
      div.innerHTML = div.innerHTML.replace(regExp1, (p0, p1, p3) => {
        console.log(p0, p1,p3,  "sad");

        return `<span style='color:red'>${p0}</span>`;
      });

      // 方法二：字面量√
      var regExp2 = /123/;
      // 正则表达式验证的三种方法：
      // 1.正则表达式对象.test()
      console.log(regExp2.test(123)); //true

      //   或字符
      console.log(/a|b|C/.test("a"), "或字符");
      console.log(/a|b|C/.test("abb"), "或字符");
      console.log(/a|b|C/.test("acc"), "或字符");

      //   转义字符 \
      let num = "21.3";
      console.log(/\d+\.\d+/.test(num), "转移");
      console.log("\d+\.\d+"); //字符串转义后还是本身 打印的是d+.d+
      console.log(new RegExp("\\d+\\.\\d+").test(num)); //需要转换成\d
    </script>
  </body>
</html>
